GrapeCity Secure Mail for .NET 4.0J
Read(Byte[],Int32,Int32) メソッド
使用例 

受信したデータを格納するバイト配列。
バッファー内のデータを格納する位置。
受信する最大バイト数。
リモートホストからデータを受信します。
シンタックス
Public Overloads Function Read( _
   ByVal buffer() As Byte, _
   ByVal offset As Integer, _
   ByVal count As Integer _
) As Data
public Data Read( 
   byte[] buffer,
   int offset,
   int count
)

パラメータ

buffer
受信したデータを格納するバイト配列。
offset
バッファー内のデータを格納する位置。
count
受信する最大バイト数。

戻り値の型

受信したデータをカプセル化するDataオブジェクト(接続が閉じた場合はnull)。
解説

このメソッドは単一のソケット読み取りを実行し、"count"バイトを要求します。ソケットは少なくとも1バイトが読み取られるか、リモートホストが接続を閉じるか、または例外がスローされるまで、処理をブロックします。 SocketError.Timeoutを示すSocketExceptionが発生したとき、ソケットは閉じません。その他のSocketExceptionは致命的であり、ソケットはこのクラスによって自動的に閉じられます。

ReceiveTimeoutプロパティは、SocketError.Timeout例外がスローされるまでの時間の長さを制御します。

使用例
以下のサンプルコードは、ワーカースレッドでReadをループ処理してデータをUIにマーシャリングする方法を示します。
private void button1_Click(object sender, EventArgs e)
{
    // 別のスレッドでデータを受信します。
    myComponent.Start(readLoopWorker, null);
}

private void readLoopWorker(object state)
{
    // リモートホストから送信されたときにデータを受信します。
    byte[] buffer = new byte[1024];
    Data data = myComponent.Read(buffer);
    while (data != null)
    {
        myComponent.Marshal(data, "", null);
        data = myComponent.Read(buffer);
    }
    myComponent.Close();
}

private void myComponent_Data(object sender, Dart.Sockets.DataEventArgs e)
{
    // データが受信されるたびに、そのデータを表示します。
    textDisplay.AppendText(e.Data.ToString());
}
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    ' 別のスレッドでデータを受信します。
    myComponent.Start(AddressOf readLoopWorker, Nothing)
End Sub

Private Sub readLoopWorker(ByVal state As Object)
    ' リモートホストから送信されたときにデータを受信します。
    Dim buffer(1023) As Byte
    Dim data As Data = myComponent.Read(buffer)
    Do While data IsNot Nothing
        myComponent.Marshal(data, "", Nothing)
        data = myComponent.Read(buffer)
    Loop
    myComponent.Close()
End Sub

Private Sub myComponent_Data(ByVal sender As Object, ByVal e As Dart.Sockets.DataEventArgs) Handles myComponent.Data
    ' データが受信されるたびに、そのデータを表示します。
    textDisplay.AppendText(e.Data.ToString())
End Sub
参照

参照

TcpBase クラス
TcpBase メンバ
オーバーロード一覧

 

 


© 2003, GrapeCity inc. All rights reserved.